package yxxy.test.Jdk18Interface;

/**
 * @author zhaoxiang
 * @version 1.0
 * @Date 2019/10/9 11:45
 * 静态方法，只能通过接口名调用，不可以通过实现类的类名或者实现类的对象调用。
 * default方法，只能通过接口实现类的对象来调用。
 */
public class JDK8InterfaceImpl implements JDK8Interface {
    //实现接口后，因为默认方法不是抽象方法，所以可以不重写，但是如果开发需要，也可以重写

   // 当然如果接口中的默认方法不能满足某个实现类需要，那么实现类可以覆盖默认方法。
   // 签名跟接口default方法一致,但是不能再加default修饰符
   @Override
   public void defaultMethod() {
       System.out.println("接口实现类覆盖了接口中的default方法");
   }
    public static void main(String[] args) {
        // static方法必须通过接口类调用
        JDK8Interface.staticMethod();

        //default方法必须通过实现类的对象调用
        new JDK8InterfaceImpl().defaultMethod();
    }
}
